function elfinderDialog() {
    var fm = $('<div/>').dialogelfinder({
        url : 'http://localhost/suifeng-tp-admin/public/elFinder/php/connector.minimal.php', // change with the url of your connector
        lang : 'en',
        width : 840,
        height: 450,
        destroyOnClose : true,
        getFileCallback : function(files, fm) {
            console.log(files);
            $('.editor').summernote('editor.insertImage', files.url);
        },
        commandsOptions : {
            getfile : {
            oncomplete : 'close',
            folders : false
            }
        }
    }).dialogelfinder('instance');
}{}

(function ($) {
    window.StringUtil = function () {
        var startsWith = function(str, prefix) {
            return str.slice(0, prefix.length) === prefix;
        }

        var endsWith = function(str, suffix) {
            return str.indexOf(suffix, this.length - suffix.length) !== -1;
        }

        var indexOf = function(str, val) {
            var list = stringToArray(str);
            for (var i = 0; i < list.length; i++) {
                if (list[i] == val) return i;
            }
            return -1;
        }

        var deleteValue = function(str, val) {
            var idx = indexOf(str, val);
            if (idx != -1)
                return deleteIndex(str, idx);
            else
                return str;
        }

        var deleteIndex = function(str, idx) {
            var list = stringToArray(str);
            list.splice(idx, 1);
            return arrayToString(list);
        }

        var setIndex = function(str, idx, val) {
            var list = stringToArray(str);
            list.splice(idx, 0, val);
            return arrayToString(list);
        }

        var stringToArray = function(str) {
            if (str)
                return str.split(',')
            else
                return [];
        }

        var arrayToString = function(arr) {
            var str = '';
            for (var i = 0; i < arr.length; i++) {
                if (str == '')
                    str += arr[i];
                else
                    str += ',' + arr[i];
            }
            return str;
        }

        return {
            startsWith: startsWith,
            endsWith: endsWith,
            indexOf: indexOf,
            deleteValue: deleteValue,
            deleteIndex: deleteIndex,
            setIndex: setIndex,
        }
    }();
})(jQuery);

// 信息提示框
(function ($) {
    window.Ewin = function () {
        var html = '<div id="[Id]" class="modal fade" role="dialog" aria-labelledby="modalLabel">' +
                    '<div class="modal-dialog">' +
                        '<div class="modal-content">' +
                            '<div class="modal-header">' +
                                '<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>' +
                                '<h4 class="modal-title" id="modalLabel">[Title]</h4>' +
                            '</div>' +
                            '<div class="modal-body">' +
                                '<p>[Message]</p>' +
                            '</div>' +
                            '<div class="modal-footer">' +
                                '<button type="button" class="btn btn-default cancel" data-dismiss="modal">[BtnCancel]</button>' +
                                '<button type="button" class="btn btn-primary ok" data-dismiss="modal">[BtnOk]</button>' +
                            '</div>' +
                        '</div>' +
                    '</div>' +
                '</div>';

        var dialogdHtml = '<div id="[Id]" class="modal fade" role="dialog" aria-labelledby="modalLabel">' +
                    '<div class="modal-dialog">' +
                        '<div class="modal-content">' +
                            '<div class="modal-header">' +
                                '<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>' +
                                '<h4 class="modal-title" id="modalLabel">[Title]</h4>' +
                            '</div>' +
                            '<div class="modal-body">' +
                            '</div>' +
                        '</div>' +
                    '</div>' +
                '</div>';

        var reg = new RegExp("\\[([^\\[\\]]*?)\\]", 'igm');
        var generateId = function () {
            var date = new Date();
            return 'mdl' + date.valueOf();
        }
        var init = function (options) {
            options = $.extend({}, {
                title: "操作提示",
                message: "提示内容",
                btnok: "确定",
                btncl: "取消",
                width: 300,
                auto: false
            }, options || {});
            var modalId = generateId();
            var content = html.replace(reg, function (node, key) {
                return {
                    Id: modalId,
                    Title: options.title,
                    Message: options.message,
                    BtnOk: options.btnok,
                    BtnCancel: options.btncl
                }[key];
            });
            $('body').append(content);
            $('#' + modalId).modal({
                width: options.width,
                backdrop: 'static'
            });
            $('#' + modalId).on('hide.bs.modal', function (e) {
                $('body').find('#' + modalId).remove();
            });
            return modalId;
        }

        return {
            alert: function (options) {
                if (typeof options == 'string') {
                    options = {
                        message: options
                    };
                }
                var id = init(options);
                var modal = $('#' + id);
                modal.find('.ok').removeClass('btn-success').addClass('btn-primary');
                modal.find('.cancel').hide();

                if (options.timeout) {
                    setTimeout(function() { $('#' + id).modal('hide'); }, options.timeout);
                }

                return {
                    id: id,
                    on: function (callback) {
                        if (callback && callback instanceof Function) {
                            modal.find('.ok').click(function () { callback(true); });
                        }
                    },
                    hide: function (callback) {
                        if (callback && callback instanceof Function) {
                            modal.on('hide.bs.modal', function (e) {
                                callback(e);
                            });
                        }
                    }
                };
            },
            confirm: function (options) {
                var id = init(options);
                var modal = $('#' + id);
                modal.find('.ok').removeClass('btn-primary').addClass('btn-success');
                modal.find('.cancel').show();
                return {
                    id: id,
                    on: function (callback) {
                        if (callback && callback instanceof Function) {
                            modal.find('.ok').click(function () { callback(true); });
                            modal.find('.cancel').click(function () { callback(false); });
                        }
                    },
                    hide: function (callback) {
                        if (callback && callback instanceof Function) {
                            modal.on('hide.bs.modal', function (e) {
                                callback(e);
                            });
                        }
                    }
                };
            },
            dialog: function (options) {
                options = $.extend({}, {
                    title: 'title',
                    url: '',
                    width: 800,
                    height: 550,
                    onReady: function () { },
                    onShown: function (e) { }
                }, options || {});
                var modalId = generateId();

                var content = dialogdHtml.replace(reg, function (node, key) {
                    return {
                        Id: modalId,
                        Title: options.title
                    }[key];
                });
                $('body').append(content);
                var target = $('#' + modalId);
                target.find('.modal-body').load(options.url);
                if (options.onReady())
                    options.onReady.call(target);
                target.modal();
                target.on('shown.bs.modal', function (e) {
                    if (options.onReady(e))
                        options.onReady.call(target, e);
                });
                target.on('hide.bs.modal', function (e) {
                    $('body').find(target).remove();
                });
            }
        }
    }();
})(jQuery);

// 对话框管理
(function ($) {
    window.DialogManager = function () {

        var lockScreen = function() {
            $('body').block({
                message: '<div class="loading loading2"></div>',
                baseZ: 3000,
                css: {
                    border: 0,
                    width: 0,
                    top: '20%',
                    left: '48%',
                },
                overlayCSS:  {
                    opacity: 0.3,
                },
            });
        }

        var unlockScreen = function() {
            $('body').unblock();
        }

        var hideLoading = function() {
            $('.loading').css('display', 'none');
            $('.blockUI').css('cursor', 'default');
        }

        return {
            lockScreen: lockScreen,
            unlockScreen: unlockScreen,
            hideLoading: hideLoading,
        }
    }();
})(jQuery);

// 表单提交处理
(function ($) {
    window.FH = function () {
        //$.datetimepicker.setLocale('ch');

        var initInputFormat = function() {
            $('input.format').each(function() {
                if ($(this).hasClass('format-decimal')) {
                    Inputmask({ regex: "(\\-?)(\\d{1,14})(\\.\\d{1,10}){0,1}" }).mask($(this));
                } else if ($(this).hasClass('format-number')) {
                    Inputmask({ regex: "(\\-?)(\\d{1,14})" }).mask($(this));
                }
            });
        }

        var initDatetimePicker = function() {
            $('input[control=datetime-picker]').each(function() {
//              $(this).click(function() {
//                  WdatePicker({
//                      el: this,
//                      dateFmt: $(this).attr('data-format'),
//                  });
//              });

//              $(this).datetimepicker({
//                  lang: 'ch',
//                  format: 'Y-m-d',
//                  timepicker: false,
//                  yearStart: 2000,
//                  yearEnd: 2050,
//              });

                $(this).datetimepicker({
                    language: 'zh-CN',
                    minView: 'month',
                    autoclose: true,
                    todayBtn:  true,
                    format: 'yyyy-mm-dd'
                });
            });
        }

        var handleDatetimePicker = function() {
            $('input[control=datetime-picker]').each(function() {
                var $hidden = $('input[hidden-id=' + $(this).attr('ref-hidden') + ']');
                if ($hidden.length) {
                    var local = new Date(Date.parse($(this).val()));
                    var utc = new Date(local.getUTCFullYear(), local.getUTCMonth(), local.getUTCDate(), local.getUTCHours(), local.getUTCMinutes(), local.getUTCSeconds());
                    var ts = Math.floor(utc.getTime()/ 1000);
                    $hidden.val(ts);
                }
            });
        }

        x  = Date.parse('2018-1-22');

        var initCheckboxes = function() {
            $('input[checkbox-ref]').click(function() {
                var v = $(this).is(':checked') ? 1 : 0;
                $('input[name=' + $(this).attr('checkbox-ref') + ']').val(v);
            });
        }

        var initBootstrapSwitch = function() {
            $('.sf-switch input').bootstrapSwitch({
                onText: 'ON',
                offText: 'OFF',
                onColor: 'success',
                offColor: 'danger',
                size:"small",
                onSwitchChange: function(event, state) {
                    $('input[name=' + $(this).attr('switch-ref') + ']').val(state ? 1 : 0);
                }
            });
        }

        var initBootstrapFileInput = function() {
            $('input[control=bootstrap-fileinput]').each(function() {
                var string = $(this).attr('initial-file-list');
                var list = $(this).attr('initial-file-list').split(';');

                var urls = [], files = [];
                for (var i = 0; i < list.length; i++) {
                    items = list[i].split(',');
                    urls.push(items[3]);
                    files.push({key: items[0], caption: items[1], size: items[2], downloadUrl: items[3]});
                }

                var $this = $(this);
//              var $hidden = $('input[name=' + $this.attr('ref-hidden') + ']');

                $this.fileinput({
                    language: 'zh',
                    autoReplace: true,
                    browseOnZoneClick: true,
                    initialPreview: urls,
                    initialPreviewConfig: files,
                    initialPreviewAsData: true,
                    overwriteInitial: true,
                    uploadUrl: FILE_UPLOAD_URL,
                    deleteUrl: FILE_DELETE_URL,
                    uploadExtraData: {
                        dir: 'image',
                        module_name: 'admin',
                    },
                });

                $this.fileinput('getFrames').each(function() {
                    idx = $(this).attr('data-fileindex');
                    if (StringUtil.startsWith(idx, 'init_')) {
                        idx = parseInt(idx.substr(5));
                        $(this).attr('data-file-key', files[idx].key);
                    }
                });

//              var getFileIds = function() {
//                  var ids = [], $container = $('.file-input', $this.parent());
//                  $('.file-preview-frame', $container).each(function() {
//                      if ($(this).parent().hasClass('kv-zoom-cache')) {
//                          return;
//                      }
//
//                      if ($(this).hasClass('file-deleted')) {
//                          return;
//                      }
//
//                      idx = $(this).attr('data-fileindex');
//                      if (StringUtil.startsWith(idx, 'init_')) {
//                          idx = parseInt(idx.substr(5));
//                          ids.push(files[idx].key);
//                      } else {
//                          id = $(this).attr('data-response-id');
//                          if (id) ids.push(id);
//                      }
//                  });
//                  return ids.toString();
//              }
//
//              var updateHidden = function(val) {
//                  $hidden.val(val);
//                  console.log('hidden=' + $hidden.val());
//              }
//
                $this.on("fileuploaded", function(event, data, previewId, index) {
                    // 当文件上传成功后触发本事件。
                    // data.response包含从服务器返回的数据。
                    console.log('fileuploaded');
                    $('#' + previewId).attr('data-file-key', data.response.id);
                    //updateHidden(getFileIds());
                });

                $this.on("filebatchselected", function(event, files) {
                    // 当文件选择后自动上传。
                    $this.fileinput("upload");
                });



//
//              $this.on('filesuccessremove', function(event, previewId, index) {
//                  // 当删除**非initialPreview里面的文件**时会触发本事件。
//                  console.log('filesuccessremove');
//                  updateHidden(getFileIds());
//                });
//
//              $this.on('filedeleted', function(event, key, jqXHR, data) {
//                  // 当删除**initialPreview里面的文件**时会触发本事件。
//                  // key=数据库文件ID
//                  console.log('filedeleted:key=' + key);
//                  updateHidden(getFileIds());
//                });
//
//              $this.on("filereset", function(event) {
//                  // 当预览框里面的所有文件被删除时触发本事件。
//                  console.log('filereset');
//                  updateHidden(getFileIds());
//                });
//
//              $this.on('filecleared', function(event) {
//                  // 点击右上角的X按钮时触发本事件
//                  console.log("filecleared");
//                  updateHidden(getFileIds());
//              });
//
//              $this.on('change', function(event) {
//                  console.log("change");
//              });

                /*


                $(this).on("filebatchselected", function(event, files) {
                    //$(this).fileinput("upload");
                });

                $(this).on('filepreupload', function(event, data, previewId, index) {
                    console.log('filepreupload');
                    console.log(data);
                });

                $(this).on('filebatchuploadsuccess', function(event, data) {
                    console.log('filebatchuploadsuccess');
                    console.log(data);
                });

                $(this).on('filebatchuploadcomplete', function(event, files, extra) {
                    console.log('File batch upload complete');
                });
                */
            });
        }

        var handleBootstrapFileinput = function($form) {
            // 表单提交之前，需要将bootstrap-fileinput的文件ID值写入到对应hidden字段
            $('input[control=bootstrap-fileinput]', $form).each(function() {
                var ids = [], $hidden = $('input[hidden-id=' + $(this).attr('ref-hidden') + ']');
                $(this).fileinput('getFrames').each(function() {
                    id = $(this).attr('data-file-key');
                    if (id) ids.push(id);
                });
                $hidden.val(ids.toString());
            });
        }

        var initSummernote = function() {
            $('div[control=summernote]').each(function() {
                $(this).summernote({
                    lang: 'zh-CN',
                    height: $(this).attr('data-height'),
//                    toolbar: [
//                        ['style', ['bold', 'italic', 'underline', 'clear']],
//                        ['insert', ['elfinder']]
//                    ]
                });
            });
        }

        var handleSummernote = function($form) {
            $('div[control=summernote]', $form).each(function() {
                var $hidden = $('input[hidden-id=' + $(this).attr('ref-hidden') + ']');
                $hidden.val($(this).summernote('code'));
            });
        }

        var initSelect2 = function() {
            $('select[control=select2]').each(function() {
                $(this).select2({
                    allowClear: true,
                    placeholder: $(this).attr('placeholder'),
                });
            });
        }

        var initChecklist = function() {
            $('div.checklist-control .select-all').on('click', function() {
                $(this).parent().parent().find(':checkbox').prop('checked', true);
            });
            $('div.checklist-control .unselect-all').on('click', function() {
                $(this).parent().parent().find(':checkbox').prop('checked', false);
            });
        }

        var handleChecklist = function($form) {
            $('div.checklist-control', $form).each(function() {
                /*
                var $hidden = $('input[fid=' + $(this).attr('ref-hidden') + ']');
                if ($(":checked", this).length > 0) {
                    var list = [];
                    $(":checked", this).each(function() {
                        list.push($(this).val());
                    });
                    $hidden.val(list.toString());
                } else {
                    $hidden.val('');
                }
                */

                /*
                var x = 10;

                if ($(":checked", this).length == 0) {
                    html = '<div style="display:none;">';
                    html += '<input type="checkbox" name="' + $(this).attr('control-name') + '" value="" checked="checked">';
                    html += '</div>';
                    $(this).append(html);
                }
                */
            });
        }


        var getUrlVars = function(url) {
            if (url.indexOf('?') == -1) return {};
            var vars = {}, hash;
            if (url.indexOf('#') != -1) url = url.slice(0, url.indexOf('#'));
            var hashes = url.slice(url.indexOf('?') + 1).split('&');
            for(var i = 0; i < hashes.length; i++) {
                hash = decodeURI(hashes[i]).split('=');
                if (hash[0].indexOf('[') != -1) { //数组
                    n = hash[0].substring(0, hash[0].indexOf('['));
                    x = hash[0].substring(hash[0].indexOf('[') + 1, hash[0].indexOf(']'));
                    if (!(n in vars)) vars[n] = [];
                    vars[n].push(hash[1]);
                } else {
                    vars[hash[0]] = hash[1];
                }
            }
            return vars;
        }

        var setFormVars = function(form, vars, override) {
            for (var key in vars) {
                if (key != 'ids' && $('[name=' + key + ']', form).length == 0) {
                    $('<input>').attr({
                        type: 'hidden',
                        name: key,
                        value: vars[key]
                    }).appendTo(form);
                }
            }
        }

        var submit = function (ele) {
            // 按钮状态是否禁用？
            if ($(ele).hasClass('disabled')) {
                return;
            }

            // 是否需要确认提示？
            var confirm_text = $(ele).attr('confirm-text');
            if (confirm_text) {
                Ewin.confirm({message: confirm_text}).on(function (e) {
                    if (!e) return;
                    handle(ele);
                });
            } else {
                handle(ele);
            }
        }

        var handle = function (ele) {
            var form = $('#' + $(ele).attr('target-form'));
            if (form.length==0) form = $(ele).closest('form');
            console.log($(form).serialize());

            var url = $(ele).attr('url');
            if (!url) url = $(ele).attr('href');
            if (!url) url = $(form).attr('action');
            if (!url) url = location.href;
            console.log(url);

            handleDatetimePicker();
            handleBootstrapFileinput(form);
            handleSummernote(form);
            handleChecklist(form);

            console.log($(form).serialize());

            if ($(ele).hasClass('require-validate')) {
				 var bv = form.data('bootstrapValidator');
				 if (bv) { // bv可能为空，因为没有定义表单验证
				     bv.validate();
				     if (!bv.isValid()) {
				         return;
				     }
				 }
            }

            if ($(ele).hasClass('redirect')) {
                location.href = url;
            } else if ($(ele).hasClass('form-post') || $(ele).hasClass('form-get')) {
                setFormVars(form, getUrlVars(url), false);
                method = $(ele).hasClass('form-post') ? 'post' : 'get';
                $(form).attr('action', url).attr('method', method).submit();
            } else {
            	if (!$(ele).hasClass('no-blockui')) {
            		DialogManager.lockScreen();
            	}
            	
            	var eleHtml = $(ele).html();
            	if ($(ele).hasClass('loading-icon')) {
            		$(ele).html("<i class='fa fa-spinner fa-spin'></i> " + eleHtml);
            	}

                $.ajax({
                    type: $(ele).hasClass('ajax-post') ? "POST" : "GET",
                    dataType: "json",
                    url: url,
                    data: $(form).serialize(),
                    success: function (result) {
                        success(form, ele, result);
                    },
                    error: function(result) {
                        error(form, ele, result);
                        DialogManager.unlockScreen();
                    },
                    complete: function() {
                    	setTimeout(function() {
             		       $(ele).html(eleHtml);
             		   	}, 1000);
                    },
                });
            }
        }

        var success = function($form, $ele, result) {
            console.log(result);
            DialogManager.hideLoading();

            // 检查是否有返回HTML？
            if (result.data.html) {
                var html_el = $('#' + $ele.attr('target-html'));
                if (html_el.length == 0) html_el = $form;
                $(html_el).html(result.data.html).attr('time', result.time);
            }

            // 检查是否需要显示提示信息？
            if (result.msg) {
                if (result.code == 0) {
                    toastr.success(result.msg, null, {
                        onHidden: function() {
                            if (result.url)
                                location.href = result.url;
                            else
                                DialogManager.unlockScreen();
                        }
                    });
                } else {
                    toastr.error(result.msg, null, {
                        onHidden: function() {
                            if (result.url)
                                location.href = result.url;
                            else
                                DialogManager.unlockScreen();
                        }
                    });
                }
            } else {
                DialogManager.unlockScreen();
            }
        }

        var error = function($form, $ele, result) {
            console.log(result);
            toastr.error('发生异常。');
        }

        return {
            init: function() {
                initInputFormat();
                initDatetimePicker();
                initCheckboxes();
                initBootstrapSwitch();
                initBootstrapFileInput();
                initSummernote();
                initSelect2();
                initChecklist();

                $(document).on('click', '.form-get', function() {
                    submit(this);
                    return false;
                });
                $(document).on('click', '.form-post', function() {
                    submit(this);
                    return false;
                });
                $(document).on('click', '.ajax-post', function() {
                    submit(this);
                    return false;
                });
                $(document).on('click', '.ajax-get', function() {
                    submit(this);
                    return false;
                });
                $(document).on('click', '.redirect', function() {
                    submit(this);
                    return false;
                });
            }
        }
    }();
})(jQuery);

// 表格管理
(function ($) {
    window.TableManager = function () {
        var selectRows = function($table) {
            if ($(".ids", $table).length > 0 && $(".ids:checked", $table).length == $(".ids", $table).length) {
                $(".check-all", $table).prop("checked", true);
            } else {
                $(".check-all", $table).prop("checked", false);
            }
            if ($(".ids:checked", $table).length > 0) {
                $(".selected", $table).removeClass("disabled");
            } else {
                $(".selected", $table).addClass("disabled");
            }
        }

        // TODO
        var register = function($table) {
            //全选/反选/单选的实现
            $table.on('click', '.check-all', function() {
                $(".ids").prop("checked", this.checked);
                if ($(".ids:checked").length > 0) {
                    $(".selected").removeClass("disabled");
                } else {
                    $(".selected").addClass("disabled");
                }
            });

            $table.on('click', '.ids', function() {
                var option = $(".ids");
                option.each(function() {
                    if (!this.checked) {
                        $(".check-all").prop("checked", false);
                        return false;
                    } else {
                        $(".check-all").prop("checked", true);
                    }
                });
                if ($(".ids:checked").length > 0) {
                    $(".selected").removeClass("disabled");
                } else {
                    $(".selected").addClass("disabled");
                }
            });
        }

        return {
            init: function($table) {
                if ($table) {
                    selectRows($table);
                } else {
                    $(".table-manager").each(function() {
                        selectRows(this);
                    });
                }
            }
        }
    }();
})(jQuery);

$(function(){
    // 一次性初始化所有弹出框
    $('[data-toggle="popover"]').popover();

    // SWITCH
    //$('.bootstrap-switch input').bootstrapSwitch();

    // toastr信息提示插件
    toastr.options = {
        closeButton: true,
        debug: false,
        progressBar: true,
        positionClass: "toast-top-center",
        onclick: null,
        showDuration: "300",
        hideDuration: "1000",
        timeOut: "1000",
        extendedTimeOut: "1000",
        showEasing: "swing",
        hideEasing: "linear",
        showMethod: "fadeIn",
        hideMethod: "fadeOut"
    };

    //全选/反选/单选的实现
    $(document).on('click', '.check-all', function() {
        $(".ids").prop("checked", this.checked);
        if ($(".ids:checked").length > 0) {
            $(".selected").removeClass("disabled");
        } else {
            $(".selected").addClass("disabled");
        }
    });

    $(document).on('click', '.ids', function() {
        var option = $(".ids");
        option.each(function() {
            if (!this.checked) {
                $(".check-all").prop("checked", false);
                return false;
            } else {
                $(".check-all").prop("checked", true);
            }
        });
        if ($(".ids:checked").length > 0) {
            $(".selected").removeClass("disabled");
        } else {
            $(".selected").addClass("disabled");
        }
    });

    // 表单处理方式注册
    FH.init();

    // Table处理
    TableManager.init();

    // TreeGrid插件
    $('.treegrid').treegrid({
        expanderExpandedClass: 'glyphicon glyphicon-chevron-down',
        expanderCollapsedClass: 'glyphicon glyphicon-chevron-right'
    });



//    // 刷新验证码
//    $(document).on('click', '.reload-verify', function() {
//        var verifyimg = $(this).attr("src");
//        if (verifyimg.indexOf('?') > 0) {
//            $(this).attr("src", verifyimg + '&random=' + Math.random());
//        } else {
//            $(this).attr("src", verifyimg.replace(/\?.*$/, '') + '?' + Math.random());
//        }
//    });

//  // 图片lazyload
//  $('img.lazy').lazyload({
//      effect         : 'fadeIn',
//      data_attribute : 'src',
//      placeholder    : $('#corethink_home_img').val()+'/default/default.gif'
//  });
    
    

    //搜索功能
    $(document).on('click', '.search-btnxxx', function() {
        var url = $(this).closest('form').attr('action');
        if (!url) url = window.location.href;
        var query = $(this).closest('form').serialize();
        query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
        query = query.replace(/(^&)|(\+)/g, '');
        if (url.indexOf('?') > 0) {
            url += '&' + query;
        } else {
            url += '?' + query;
        }
        window.location.href = url;
        return false;
    });

    //回车搜索
    $(document).on('keydown', '.search-input', function(e) {
        if (e.keyCode === 13) {
            $(this).closest('form').find('.search-btn').click();
            return false;
        }
    });
    
    
    
    
    
    
//
//
//    // 设置ct-tab的宽度
//    $('.ct-tab').width($(window).width()-373);
//
//    // 打开新Tab
//    $(document).on('click', '#sidebar .open-tab', function(e) {
//        e.preventDefault(); // 取消默认行为
//        var tab_url   = $(this).attr('href');
//        var tab_name  = $(this).attr('tab-name');
//        var is_open   = $('.ct-tab-content #' + tab_name).length;
//        if(is_open !== 0){
//            $('.ct-tab a[href="#' + tab_name + '"]').tab('show');
//        } else {
//            var tab  = '<li class="new-add" style="position: relative;float:left;display: inline-block;"><a class="b-r-0" href="#'
//                     + tab_name
//                     + '" role="tab" data-toggle="tab">'
//                     + $(this).html()
//                     + '<button type="button" class="close" aria-label="Close">'
//                     + '<span aria-hidden="true">&times;</span></button></a></li>';
//            var tab_content = '<div role="tabpanel" class="new-add tab-pane fade" id="'
//                            + tab_name
//                            + '"><iframe name="#'
//                            + tab_name
//                            + '" class="iframe" src="'
//                            + tab_url
//                            +'"></iframe></div>';
//            $('.ct-tab').width($('.ct-tab').width() + 60);
//            $('.ct-tab').append(tab);
//            $('.ct-tab-content').append(tab_content);
//            $('.ct-tab a:last').tab('show');
//        }
//        return false;
//    });
//
//    // 给Bootstrap标签切换增加关闭功能
//    $('body').on('click', '.ct-tab-wrap .close', function() {
//        var id = $(this).closest('a[data-toggle="tab"]').attr('href');
//        if(id) {
//            // 删除前先显示前一个tab
//            if ($(id).hasClass('active')) {
//                $(this).closest('li').prev().addClass('active');
//                $($(this).closest('li').prev().find('a').attr('href')).removeClass('fade').addClass('active');
//
//            }
//            // 删除标签对应的内容
//            if ($(id).remove()) {
//                $(this).closest('li').remove();  // 删除标签
//            };
//        }
//    });
//
//    // 关闭标签时自动取消左侧导航的active状态
//    $(document).on('click', '.nav-close .close', function() {
//        var id  = $(this).closest('a[data-toggle="tab"]').attr('href');
//        var tab = id.split('#');
//        $('a[tab-name=' + tab[1] + ']').closest('li').removeClass('active');
//    });
//
//    // 关闭所有标签
//    $(document).on('click', '.close-all', function() {
//        $('.new-add').remove();
//        $('.ct-tab a:first').tab('show');
//        $('.ct-tab-content .tab-pane').addClass('active in');
//    });
//
//    // 双击刷新标签
//    $(document).on('dblclick', '.ct-tab a', function() {
//        var id = $(this).attr('href');
//        $(id+' .iframe').attr('src', $(id+' .iframe').attr('src'));
//    });
//
//    // TAB向左滚动
//    $(document).on('click', '#tab-left', function() {
//        var left = $('.ct-tab').position().left;
//        if (left < 0) {
//            $('.ct-tab').animate({left:(left+480+'px')});
//        }
//    });
//
//    // TAB向右滚动
//    $(document).on('click', '#tab-right', function() {
//        var left = $('.ct-tab').position().left;
//        if(($(window).width()-373)-(left+$('.ct-tab').width()) < 0){
//            $('.ct-tab').animate({left:(left-480+'px')});
//        }
//    });



//    // 检测更新
//    if ($('.ct-update').length != 0) {
//        // 检测更新
//        $.ajax({
//            url: $('input[name="check_version_url"]').val(),
//            type: 'GET',
//        }).done(function(data) {
//          console.log();
//            if (data.status == 1) {
//                $('.version').html(data.info);
//                if (data.sn_info) {
//                    $('.sn_info').html(data.sn_info);
//                }
//            } else {
//                $.alertMessager(data.info, 'danger');
//            }
//        });
//    }
});


    $(function() {
        Array.prototype.ly_inde_of = function(val) {
            for (var i = 0; i < this.length; i++) {
                if (this[i] == val) return i;
            }
            return -1;
        };

        Array.prototype.ly_delete = function(val) {
            var index = this.indexOf(val);
            if (index > -1) {
                this.splice(index, 1);
            }
        };
    });
